home *** CD-ROM | disk | FTP | other *** search
- /*
- * ASP FormMail (BETA) for IIS 2.0+
- *
- * Version: v1.1b
- * Author : Larry [Josh] Ham (lham@geocel.com)
- * Geocel International (c) 1999
- *
- * Last Modified: 04/26/99
- * All rights reserved.
- * -----------------------------
- *
- * ASP FormMail is designed to mimic Matt Wright's popular perl FormMail script located
- * at http://www.worldwidemart.com/scripts/ The most important difference is that
- * ASP FormMail is designed mainly for IIS and does not require any third party programs
- * such as Perl or SendMail. It is completely handled internally via your web server.
- *
- * ASP FormMail has been designed around the server-side mail component "DevMailer".
- * However, it may be modified to use other compenents. View the README file for
- * for more information regarding "DevMailer".
- *
- * Please send bug reports, comments, etc to lham@geocel.com
- *
- * ASP FormMail may be used and modified free of charge by anyone so long as this
- * copyright notice and the comments above remain intact. By using this code
- * you agree to indemnify Lawrence [Josh] Ham from any liability that might arise
- * from its use.
- *
- * Selling the code for this program without prior written consent is
- * expressly forbidden.
- */
-
- ASP FormMail is a WWW form to E-mail gateway ASP JScript *port* of the popular
- PERL FormMail script.
-
- ASP FormMail may reside in any directory recognized within the scope of your
- IIS Web configuration.
-
- A simple HTML implementation would apper as such:
-
- ----------
- <HTML>
- <BODY>
-
- <CENTER>
- <FORM METHOD="POST" ACTION="ASPFormMail.asp">
- <INPUT TYPE="HIDDEN" NAME="RECIPIENT" VALUE="lham@geocel.com">
-
- <H3>This is a sample</H3>
-
- Enter your favorite color: <INPUT TYPE="TEXT" NAME="Color" SIZE="20">
-
- <INPUT TYPE="SUBMIT" NAME="SEND" VALUE="SEND">
-
- </FORM>
- </CENTER>
-
- </BODY>
- </HTML>
- ----------
-
- There you have a simple web form to e-mail submission form.
-
- The following hidden input TAGS are ported directory from FormMail,
- thus I will simply leave them as they are in the original FormMail
- documentation:
-
- ** The following documentation is solely credited to Matt Wright:
-
- -- Beginning of Matt Wright's documentation --
-
- Necessary Form Fields:
- ======================
-
- There is only one form field that you must have in your form, for
- FormMail to work correctly. This is the recipient field.
-
- Field: recipient
-
- Description: This form field allows you to specify to whom you wish for your
- form results to be mailed. Most likely you will want to
- configure this option as a hidden form field with a value equal
- to that of your e-mail address.
-
- Syntax:
- <input type=hidden name="recipient" value="email@your.host.com">
-
- -----------------------------------------------------------------------------
-
- Optional Form Fields:
- =====================
-
- Field: subject
-
- Description: The subject field will allow you to specify the subject that you
- wish to appear in the e-mail that is sent to you after this form
- has been filled out. If you do not have this option turned on,
- then the script will default to a message subject: WWW Form
- Submission
-
- Syntax:
- If you wish to choose what the subject is:
- <input type=hidden name="subject" value="Your Subject">
-
- To allow the user to choose a subject:
- <input type=text name="subject">
-
- -----------------------------------------------------------------------------
-
- Field: email
-
- Description: This form field will allow the user to specify their return
- e-mail address. If you want to be able to return e-mail to your
- user, I strongly suggest that you include this form field and
- allow them to fill it in. This will be put into the From:
- field of the message you receive. If you want to require an
- email address with valid syntax, add this field name to the
- 'required' field.
-
- Syntax:
- <input type=text name="email">
-
- -----------------------------------------------------------------------------
-
- Field: realname
-
- Description: The realname form field will allow the user to input their real
- name. This field is useful for identification purposes and will
- also be put into the From: line of your message header.
-
- Syntax:
- <input type=text name="realname">
-
- -----------------------------------------------------------------------------
-
- Field: redirect
-
- Description: If you wish to redirect the user to a different URL, rather than
- having them see the default response to the fill-out form, you
- can use this hidden variable to send them to a pre-made HTML
- page.
-
- Syntax:
- To choose the URL they will end up at:
- <input type=hidden name="redirect"
- value="http://your.host.com/to/file.html">
-
- To allow them to specify a URL they wish to travel to once the
- form is filled out:
- <input type=text name="redirect">
-
- -----------------------------------------------------------------------------
-
- Field: required
-
- Description: You can now require for certain fields in your form to be filled
- in before the user can successfully submit the form. Simply
- place all field names that you want to be mandatory into this
- field. If the required fields are not filled in, the user will
- be notified of what they need to fill in, and a link back to
- the form they just submitted will be provided.
-
- To use a customized error page, see 'missing_fields_redirect'
-
- Syntax:
- If you want to require that they fill in the email and phone
- fields in your form, so that you can reach them once you have
- received the mail, use a syntax like:
-
- <input type=hidden name="required" value="email,phone">
-
- -----------------------------------------------------------------------------
-
- Field: env_report
-
- Description: Allows you to have Environment variables included in the
- e-mail message you receive after a user has filled out your
- form. Useful if you wish to know what browser they were using,
- what domain they were coming from or any other attributes
- associated with environment variables. The following is a short
- list of valid environment variables that might be useful:
-
- REMOTE_HOST - Sends the hostname making a request.
- REMOTE_ADDR - Sends the IP address of the remote host making
- the request.
- REMOTE_USER - If server supports authentication and script
- is protected, this is the username they have
- authenticated as. *This is not usually set.*
- HTTP_USER_AGENT - The browser the client is using to send the
- request.
-
- There are others, but these are a few of the most useful. For
- more information on environment variables, see:
-
- http://www.cgi-resources.com/Documentation/Environment_Variables/
-
- Syntax:
- If you wanted to find the remote host and browser sending the
- request, you would put the following into your form:
-
- <input type=hidden name="env_report" value="REMOTE_HOST,
- HTTP_USER_AGENT">
-
- -----------------------------------------------------------------------------
-
- Field: sort
-
- Description: This field allows you to choose the order in which you wish
- for your variables to appear in the e-mail that FormMail
- generates. You can choose to have the field sorted
- alphabetically or specify a set order in which you want the
- fields to appear in your mail message. By leaving this field
- out, the order will simply default to the order in which the
- browsers sends the information to the script (which is usually
- the exact same order as they appeared in the form.) When
- sorting by a set order of fields, you should include the phrase
- "order:" as the first part of your value for the sort field, and
- then follow that with the field names you want to be listed in
- the e-mail message, separated by commas. Version 1.6 allows a
- little more flexibility in the listing of ordered fields, in
- that you can include spaces and line breaks in the field without
- it messing up the sort. This is helpful when you have many form
- fields and need to insert a line wrap.
-
- Syntax:
- To sort alphabetically:
- <input type=hidden name="sort" value="alphabetic">
-
- To sort by a set field order:
- <input type=hidden name="sort" value="order:name1,name2,
- name3,etc...">
-
- -----------------------------------------------------------------------------
-
- Field: print_config
-
- Description: print_config allows you to specify which of the config
- variables you would like to have printed in your e-mail message.
- By default, no config fields are printed to your e-mail. This
- is because the important form fields, like email, subject, etc.
- are included in the header of the message. However some users
- have asked for this option so they can have these fields printed
- in the body of the message. The config fields that you wish to
- have printed should be in the value attribute of your input tag
- separated by commas.
-
- Syntax:
- If you want to print the email and subject fields in the body of
- your message, you would place the following form tag:
-
- <input type=hidden name="print_config" value="email,subject">
-
- -----------------------------------------------------------------------------
-
- Field: print_blank_fields
-
- Description: print_blank_fields allows you to request that all form fields
- are printed in the return HTML, regardless of whether or not
- they were filled in. FormMail defaults to turning this off, so
- that unused form fields aren't e-mailed.
-
- Syntax:
-
- If you want to print all blank fields:
- <input type=hidden name="print_blank_fields" value="1">
-
- ----------------------------------------------------------------------------
-
- Field: title
-
- Description: This form field allows you to specify the title and header that
- will appear on the resulting page if you do not specify a
- redirect URL.
-
- Syntax:
- If you wanted a title of 'Feedback Form Results':
- <input type=hidden name="title" value="Feedback Form Results">
-
- -----------------------------------------------------------------------------
-
- Field: return_link_url
-
- Description: This field allows you to specify a URL that will appear, as
- return_link_title, on the following report page. This field
- will not be used if you have the redirect field set, but it is
- useful if you allow the user to receive the report on the
- following page, but want to offer them a way to get back to
- your main page.
-
- Syntax:
- <input type=hidden name="return_link_url"
- value="http://your.host.com/main.html">
-
- -----------------------------------------------------------------------------
-
- Field: return_link_title
-
-
- Description: This is the title that will be used to link the user back to the
- page you specify with return_link_url. The two fields will be
- shown on the resulting form page as:
-
- <ul>
- <li><a href="return_link_url">return_link_title</a>
- </ul>
-
- Syntax:
- <input type=hidden name="return_link_title"
- value="Back to Main Page">
-
- -----------------------------------------------------------------------------
-
- Field: missing_fields_redirect
-
- Description: This form field allows you to specify a URL that users will be
- redirected to if there are fields listed in the required form
- field that are not filled in. This is so you can customize an
- error page instead of displaying the default.
-
- Syntax:
- <input type=hidden name="missing_fields_redirect"
- value="http://your.host.com/error.html">
-
- -----------------------------------------------------------------------------
-
- Field: background
-
- Description: This form field allow you to specify a background image that
- will appear if you do not have the redirect field set. This
- image will appear as the background to the form results page.
-
- Syntax:
- <input type=hidden name="background"
- value="http://your.host.com/image.gif">
-
- -----------------------------------------------------------------------------
-
- Field: bgcolor
-
- Description: This form field allow you to specify a bgcolor for the form
- results page in much the way you specify a background image.
- This field should not be set if the redirect field is.
-
- Syntax:
- For a background color of White:
- <input type=hidden name="bgcolor" value="#FFFFFF">
-
- -----------------------------------------------------------------------------
-
- Field: text_color
-
-
- Description: This field works in the same way as bgcolor, except that it
- will change the color of your text.
-
- Syntax:
- For a text color of Black:
- <input type=hidden name="text_color" value="#000000">
-
- -----------------------------------------------------------------------------
-
- Field: link_color
-
- Description: Changes the color of links on the resulting page. Works in the
- same way as text_color. Should not be defined if redirect is.
-
- Syntax:
- For a link color of Red:
- <input type=hidden name="link_color" value="#FF0000">
-
- -----------------------------------------------------------------------------
-
- Field: vlink_color
-
- Description: Changes the color of visited links on the resulting page. Works
- exactly the same as link_color. Should not be set if redirect
- is.
-
- Syntax:
- For a visited link color of Blue:
- <input type=hidden name="vlink_color" value="#0000FF">
-
- -----------------------------------------------------------------------------
-
- Field: alink_color
-
- Description: Changes the color of active links on the resulting page. Works
- exactly the same as link_color. Should not be set if redirect
- is.
-
- Syntax:
- For a visited link color of Blue:
- <input type=hidden name="alink_color" value="#0000FF">
-
- -----------------------------------------------------------------------------
-
- Any other form fields that appear in your script will be mailed back to
- you and displayed on the resulting page if you do not have the redirect
- field set. There is no limit as to how many other form fields you can
- use with this form, except the limits imposed by browsers and your server.
-
- -----------------------------------------------------------------------------
-
- Some of the possible uses of this script are:
-
- 1) You want to have a form that will be mailed to you, but aren't sure how to
- write the CGI script for it.
- 2) You are the webmaster of your site and want to allow users to use forms,
- but not to have their own cgi-bin directories, which can cause
- security risks to your system. You can set this script up and then
- allow all users to run off of it.
- 3) Want to have one script to parse all of your html forms and mail them
- to you.
-
- -----------------------------------------------------------------------------
-
- -- End of Matt Wright's documentation. --
-
- Optional Form Fields:
- =====================
-
- Field: FILES
-
- Description: The files field can allow for users to choose a file or list
- of files to be included as a file attachment via e-mail.
- Note: For security purposes, only use filenames, not the full
- path to the files, the path is designated in FORMMAIL.ASP!
-
- Syntax:
- If you wish to choose what the files are:
-
- <select NAME="FILES">
- <OPTION VALUE="">-- Select --</OPTION>
- <OPTION VALUE="beans.txt">Attach Bean Documentation</OPTION>
- <OPTION VALUE="com.txt">Attach COM Documentation</OPTION>
- </select>
-
-
- -----------------------------------------------------------------------------